package JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/*
  练习  :  添加一条记录

*/

public class jdbcdemo02 {
    public static void main(String[] args) {
           /*这里讲变量bb和cc定义在这里,然后再在下列的第一个try catch中赋值
           这样做的目的是提高两者的作用域,因为他们两个都是在第一个try的大括号当中,出了这个大括号在
             finally中无法释放资源,因此我们需要将两个变量定义在try的大括号之外,以此用来提高两者的作用域*/
        Statement cc=null;
        Connection bb =null;
        try {
            // 1 注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 2 :定义sql
             String aa = "insert into account values (3,'王五',3000)";
            try {
                // 3 获取连接对象
               bb = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root118");
                // 4 获取执行sql的对象
                 cc = bb.createStatement();
                // 5 执行sql
                int dd = cc.executeUpdate(aa);  // 这里返回的值是返回一个影响的行数
                // 6 处理结果
                System.out.println(dd);
                if (dd>0){
                    System.out.println("添加成功!!");
                }else{
                    System.out.println("添加失败...");
                }

            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }finally {
            // 7释放资源
             // 为了防止空指针异常
            if (cc!= null){
                try {
                    cc.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (bb!= null){
                try {
                    bb.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }
}
